The introduction of broadband networks, access devices such as set-top boxes, and media such as DVD disks recorded with digitally compressed audio, video and data signals, for example, which utilize motion picture expert group (MPEG) compression protocols, may provide sound and picture quality that is virtually indistinguishable from the original material. One commonly used MPEG protocol is MPEG-2, which provides the necessary protocols and infrastructure necessary for transferring digitally compressed audio, video and data signals. A detailed description of the MPEG-2 standard is available in the ISO/IEC Standard 13818.
A file compressed, or encoded, via MPEG protocol may comprise a plurality of data streams. These data streams may include an elementary stream (ES), a packetized elementary stream (PES), a transport stream (TS) and a program specific information stream. A MPEG encoder typically creates an elementary stream from analog video or analog audio contents. Therefore, there may be at least two elementary streams generated from a program with audio and video content. The MPEG encoder may apply MPEG compression algorithms to the source content, resulting in individual elementary streams for each audio and video stream. The encoded MPEG data stream may be communicated to a subscriber who may use a set-top box, for example, to uncompress, or decode, the MPEG data stream for viewing on a TV. Factors such as a bit rate of the encoded stream, quality of the original source content, and encoder algorithm may determine the quality of the output signal.
In a typical MPEG data stream, the length of the individual elementary streams may be equivalent to the length of the program. The data in each elementary stream may be converted to a plurality of variable-length packets. These packets may be called the packetized elementary stream (PES). The packets in each PES may include a header that may be pre-pended to a payload. The header may include information pertaining to the encoding process required by the MPEG decoder to decompress and decode a received elementary stream. Each individual elementary stream may have a corresponding PES and encoded audio and video information may still reside in separate PESs.
The transport stream (TS) and program specific information stream may be formed by multiplexing a plurality of PES packets. The TS may include a plurality of additional packets that may contain tables, which may be necessary for de-multiplexing the TS. The tables may be collectively called program specific information (PSI). To maintain synchronization and timing, null packets may also be inserted to fill the intervals between information-bearing packets. Timing information for an associated program may be carried by specific packets. One type of timing information may be called the program clock reference (PCR). The PCR may be located in one of the optional fields of the header for the TS packet. During operation, the PCR may permit the decoder to synchronize its clock to the same frequency as that of the original encoder's clock frequency. TS packets may have a fixed length of 188 bytes, which may include a header having a minimum size of 4 bytes and a maximum payload of 184 bytes.
A typical set-top box for a cable or satellite subscriber may receive tens, if not hundreds, of channels of programming information. Each channel may have associated with it a plurality of data streams. Therefore, a set-top box may use a filtering system to be able to quickly determine which data stream each packet may be associated with. Some systems utilize sophisticated software programs to filter contents for particular channels in a the plurality of data streams. As the number of channels in each data streams increases, the greater the complexity of these filters. Furthermore, as the number of data streams increases, even more sophisticated filters are required. As a result, the filters can overload a processor utilizing processing valuable processing bandwidth.
In current systems, filters are aligned from the start of a packet. Depending on the length of the filter and the location of the desired data in the packet, the filter may not be able to filter some of the desired data in the packet. Whenever this occurs, the processor may have to filter an unfiltered portion of the packet in order to complete filtering all of the desired data. This may increase the computational burden on the processor and may increase latency for real time operations.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.